catskulls.place
 

log 04: level design is for losers

november 17th, 2025

 

greetings and salutations~!! it's been a while. last time i was writing a devlog i was so ungodly pissed i'm legitimately surprised it wasn't a crazy pms case.... as i mentioned in the last crazy writing on the wall, i work extremely efficiently when provoked. this has been more or less reflected in the pace at which i've been working!! i've gotten a bunch done on the programming front, but what i'm here to discuss is the fact i've been thrown back into the blender mines. this devlog is largely going to focus on level design rather than aesthetics or complaining about blender -- how exciting!

i've been working on the library level of my game since january, but way back then it was literally just a bunch of boxes connected by linear hallways. this was my first ever fps map, so it kind of sucked ass, but that's how it goes, right?!? somewhere around late march i realized how bad it was and decided it needed a redesign, but since i haven't actually played any fps games (ESPECIALLY ones like this) i was completely lost on what constitutes a "good fps map design". so i put that string into google and this image popped up:

   

this is the whiteboard test by robert yang! i had never heard of this guy but i literally took this image at face value because i'm not a fucking professional and i fished this image from a game design blog so surely it's fine. literally anyone has more knowledge on this subject than i do icl. in retrospect i looked this guy up and he's actually taught game design at a university in new york so i think he's qualified to give advice on this

my first map design was clearly in the "intermediate" category, if not a bit worse. a bunch of boxes. not even some creative boxes. or boxes of different sizes. it was really bad.... so i thought to myself -- how can i make this better?! like i said, i took the above image at face value and ended up going "hmmm. real life architecture and fuckass symmetry? that's just like my local library!!!" i love my local library. it's my favorite building in my hometown, so i got the idea of adapting it into a fps map to get the hang of things. it has great verticality, but not too much. open floorplan, but makes for good chokepoints and such! it also happens to be one of my favorite places ever, so i decided to start building a map based on it. also like, a library's a library, right??!?

so, about the actual map design. way back around march i got started on building the map by fishing an image of the floorplan for the library from google, which ended up being this one:

   

and so, i printed it out on several A4 sheets of paper and started doodling on it???

   

yeah, so, in retrospect, this totally looked like i was planning a major heist or something. i still have this thing in my room. but all in all, it was a very necessary ordeal -- while aalto's design makes for an excellent library, it makes for a suboptimal comedy horror fps map!

according to a random game design blog post from a completely unaccredited individual i once again took at face value, a core concept in fps maps is loops, apparently. this is where i stopped reading the blog post because i had a most likely misguided eureka moment, but it helped me grasp some things... since my gameplay loop more or less consists of fleeing from enemies (or killing them) in order to cover as much ground as possible looking for samples, i had to prioritize movement -- this meant tearing down some walls and creating passageways not present in the original blueprints! later on i ended up scrapping most of the additional architecture and weird passageways (save for one around the right end of the map) for some more creative approaches, but the final layout of the map still has most of the geometry present.

after playtesting with just one staircase leading down to each pit like in the original blueprints, i found that i'd habitually avoid going down there, because the single exit more or less meant that the pit was a death trap -- if you tried getting out, you'd get ganked by a swarm of ghosts. that's not very fun! so in order to negate this, i added ladders, which aren't as obvious to the player and more or less just look like decoration, but can be used to quickly climb up from a pit. they blend in seamlessly with their surroundings, since older libraries do have ladders like these to reach higher shelves! usually they have wheels or some kind of fixtures, but we're working on a budget here. a consistent trope with my maps is creating features that are hidden in plain sight, used to reward players who pay close attention to their surroundings and use things to their advantage. this is a habit i got from playing too much portal

another very important feature i added was chandeliers. aalto's original architecture has so many fucking skylights all over the place so there isn't any major overhead lighting, but due to the difference in atmosphere in my project i had to add some sort of lighting. chandeliers seemed tonally accurate. creepy library and allat. though, due to the fact the ceilings were pretty low and the chandeliers ended up being super easy to bump into, i decided to do something fun with them!!!

i'm the type of person who's really into the feeling of speed and mobility in video games. one of my all-time favorites is zineth, a game by arcane kids, that embodies the feeling perfectly -- the amount of english classes i spent playing that game is actually ridiculous... this manifested in the best and worst idea i've had regarding this map -- what if you could swing on the chandeliers and use them to vault?!

i won't go into the absolute physics hellhole this led me down because i was actually crying and the physics are still kinda fucked, but in the end i managed to get the code to do what it needed to -- the player can jump towards a chandelier, press E at just the right time and then get flung forward, giving them a small speed boost too! this ended up being ridiculously fun to play with and is actually a super important mobility mechanic whenever i'm playing, since it makes running from enemies a lot easier and gives me more options for routes, but for some reason none of my playtesters seem to use it...

   

later on i also added some obstacles for the final sprint to the level exit during the extraction phase, mostly because the area was completely desolate and boring as hell, but also because of the chandeliers sitting unused for the most part --- I PUT EFFORT INTO CODING THOSE, YOU KNOW?!?!?!? SO UNLESS YOU WANNA START DOING CRAZY DETOURS OR WADING THROUGH MUCK YOU'D BETTER START VAULTING

   

my first rendition of the library map based on aalto's work from around march-april used to have a basement floor, much like the real library. as i didn't have the floor plans for the basement section, i basically started winging the whole thing -- which led to a LOT of issues, both on the 3d modelling and game design front...! i'm not an architect and i'm certainly not a structural engineer. so for my new build of the map, i scrapped the whole thing, limiting the map to just the one floor and the book pits. i still think there's a decent amount of verticality what with being able to climb the shelves thanks to the ladders and the whole pit thing, so um, all's well that ends well??

so now that we have some really nice geometry and environments that give player a vast amount of freedom to move around along different routes etc etc etc, it's time for the next step -- limiting said freedom!

i like games that make you think. from what i gather, first-person shooters traditionally aren't that kind of game... but i can work with that!!! as i mentioned, a thing i really value in games is having to utilize game awareness. i was first introduced to this concept circa early 2021 through the splatoon competitive scene (don't get me started on that) and as i watched different content creators playing stuff along the years i realized how crucial this actually is. in order to perform well in a game, you need to be extremely aware of the smallest details, game states and your surroundings to make quick decisions based on observations. if you succeed, you'll do well, and if you fail, you won't necessarily lose the game, but you'll be punished in one way or another. this has more or less become one of my core game design philosophies, and in this map, it's mostly exemplified by these paintings!

   

(excuse the placeholder textures, i haven't had the time to draw a bunch of paintings~~~~)

these things are very interesting mechanically. at the start of each level, every painting is either randomized as safe or unsafe. if the painting is classified as safe, that's that -- it does literally nothing for the rest of the level. now, if the painting is considered unsafe, though, it'll enter a cycle. during this cycle, it'll open and close its eyes at random intervals, and if you happen to walk by it when its eyes are open, you'll get violated by a creepy ghost hand and take some nasty damage. these things scare me a lot. i don't know why, but the placeholder texture i drew up is especially unsettling....

additionally, i feel really smart about how i executed these, so i want to talk about that... the paintings have eyes that'll follow the player, like a really stereotypical haunted painting. you know the drill. normally for an eye tracking motion like this, you'd have to write some relatively complicated code that updates every frame or so, which is completely doable, yes -- i actually had the code written out for that at first -- but the map has like 12 of these paintings and my CPU is already getting fucking obliterated by all the active enemies in the level, so i had to optimize that a bit.... so as i was moving the parts of this thing around, i ended up realizing i could get away with a very simple optical illusion!!! after about half an hour, i had a creepy painting with eyes tracking the player without a single line of code, and i even optimized it for randomizing painting textures, which is really neat. i understand wanting to show off your cool coding skills with stuff like this, but honestly, approaches like these make me feel way more clever~~~~

backtracking to the topic of limiting player mobility, these paintings are very intentionally placed -- i've used them to "block off" routes, but not completely. if you get particularly unlucky and end up with a haunted painting blocking the way to the exit or to a place you need to reach, you'll need to keep an eye out for whether it's active or not. randomizing the paintings for each level also brings in an element of rng and makes it impossible for the players to predict which paintings are dangerous, further incentivizing keeping a close eye on them. a lot of these paintings are a bit further off in the map and probably won't be an issue for most players, which would normally be an issue -- but if the player doesn't consider them a threat, they'll be more likely to get caught off guard by one!!!!!!!!! this happens to me a lot while playtesting!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! cough!!!!!!!!!!!(you'll see that the last two screenshots were taken in the same session, but my HP has mysteriously decreased after taking the first one... wanna guess how that happened?)

while a lot of these environmental hazards might not seem like a lot by themselves, i have a lot of trust in the fact that combined with trying to juggle the actual mission objective, all the enemies and other mysterious forces hellbent on dealing psychic damage to our protagonist, it'll be a really fun challenge. i still haven't implemented all the mechanics for this map, mostly on the enemy side (something broke down specifically in this map and i have no idea why, it works in literally every other map i test it in???) so i haven't gotten the "full experience" myself, but at least in theory, this should make for a good first level. i've been saving all the tougher enemies for a later level, too, and i can't wait to get to that~~~~~~~~~

i already mentioned how well everything is going the programming front, but all things considered, getting a demo out before i'm 20 is like, inevitable at this point. i've gotten every single base mechanic more or less finalized, a majority of bugs from the first pre-alpha build ironed out and surprisingly even controller support implemented -- a lot of the work i need to do now is just making maps and graphics and writing dialogue, which is like my least favorite thing ever but whatever... i'm great at a lot of stuff for sure, but writing is NOT one of them!!!!!! that much is painfully obvious from these devlogs alone, now try to imagine me writing dialogue that flows well. fucking yikes

hopefully i'll have some more valuable things to say next time i write one of these! i have exams this week and then more exams after that and then like even more exams (a ha ha ha.) so it's gonna be busy for quite a bit, but i procrastinate on coursework so much i'll find the time!!

best regrets,
ellen alias catskulls